package Ejemplos;

import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.component.submenu.Submenu;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;

/**
 *
 * @author BENIGNO
 */
@ManagedBean
@RequestScoped
public class indexController {

    private MenuModel menuModel;
    private MenuDAO menuDAO = new MenuDAO();

    public void geraMenu() {
        menuModel = new DefaultMenuModel();
        List<Menu> listaMenu = menuDAO.listaTodos(); // Substituir o listaTodos() pelos menus permitidos
        for (Menu menu : listaMenu) {
            if (menu.getMenu().getId() == 0) {
                Submenu submenu = new Submenu();
                submenu.setLabel(menu.getDescricao());
                for (Menu m : menuDAO.buscaPorMenu(menu)) {
                    if (!menuDAO.verificaSubMenu(m)) {
                        MenuItem mi = new MenuItem();
                        mi.setValue(m.getDescricao());
                        mi.isGlobal();
                        mi.setIcon("imagens/" + m.getIcone());
                        mi.setUrl("http://www.google.com");
                        submenu.getChildren().add(mi);
                    } else {
                        Submenu sm = new Submenu();
                        sm.setLabel(m.getDescricao());
                        sm = geraSubmenu(m);
                        submenu.getChildren().add(sm);
                    }
                }
                menuModel.addSubmenu(submenu);
            }
        }
    }

    public Submenu geraSubmenu(Menu menu) {
        Submenu submenu = new Submenu();
        submenu.setLabel(menu.getDescricao());
        for (Menu m : menuDAO.buscaPorMenu(menu)) {
            if (!menuDAO.verificaSubMenu(m)) {
                MenuItem mi = new MenuItem();
                mi.setValue(m.getDescricao());
                mi.setUrl("http://www.utp.ac.pa");
                //mi.setStyle("width:50px");
                submenu.getChildren().add(mi);
            } else {
                submenu.getChildren().add(geraSubmenu(m));
            }
        }
        return submenu;
    }

    public MenuModel getMenuModel() {
        return menuModel;
    }

    public indexController() {
        geraMenu();
    }
}